1. Field of the Invention
The present invention relates to the management of connections between end points in a network. More particularly, the invention is directed to maintaining a network connection when one network end point experiences a planned service interruption, such as during transfer of an application that implements the end point from one network system to another as part of a software migration operation.
2. Description of the Prior Art
By way of background, it is sometimes necessary to temporarily disable a software application while the application is engaged in network communication at one endpoint of a network connection. By way of example, such an interruption could occur when the application is migrated from one network system to another for load balancing or other reasons. During the period of interruption, it may be desirable to maintain the application's network connection even though the application is unable to process network data. This would be the case, for example, if the application was involved in a complex transaction with a network peer and the transaction state would be lost if the network connection was terminated.
Techniques have been proposed whereby a live TCP (Transmission Control Protocol) or UDP (User Datagram Protocol) connection can be passed from one machine to another without connection loss. Such techniques have included solutions such as (1) offloading the application's network protocol processing to a front end communication entity, (2) having a takeover node continuously snoop the connection and thereby mirror the application's network protocol processing, (3) isolating the network connection so that no packets are received or sent, (4) placing the network peer in a persist mode and having a remote home agent assume responsibility for the connection, or (5) modifying the TCP protocol at both network connection endpoints to support temporary connection inactivity. The first two solutions have the disadvantage of requiring duplicative processing resources to monitor the network connection. The third solution runs the risk that the network peer will drop the connection if the interruption takes longer than the peer's view of retransmission time and the number of transmissions that are allowed before the connection is terminated. The fourth solution requires a separate machine to assume connection responsibility. The fifth solution requires modification to the network stacks of both endpoints.
It would be desirable to provide an alternative technique whereby an application's network connection can be maintained during a temporary cessation of application processing activity. What is particularly needed is a solution that accomplishes the foregoing without the attendant disadvantages noted above.